A network virtualization platform is a platform that is used to configure and deploy networking topologies for a software-defined network. A virtualization platform is a complex product that includes many software components residing on different physical machines. For a simple network feature, often a number of components need to work collaboratively. As a result, it has become increasingly difficult for a single person to debug a network virtualization platform and find the culprit component when the configured network behaves incorrectly.
A problem often encountered by developers, testers, and field engineers in debugging a software-defined network is to quickly perform analysis and correctly identify the problem area when an issue is reported or a network feature does not work as expected. Traditionally, each network component developer strategically implements some log entries and may provide some cheat sheet to explain how to interpret those log entries during debugging sessions. This ad-hoc approach has several problems for the persons who perform overall system diagnosis for the software-defined network.
To effectively debug the software-defined network, one must have reasonable knowledge of all components that a network feature touches. Hence a bug may be punted around before the correct owner is discovered. Often times, it is just as hard to find the right developer than to resolve the bug itself. This overall knowledge of the software-defined network is transient and evolving. Products may change, log entries may change, and people may change. Searching and correlating messages in log files are a laborious process. Often in order to debug a problem, developers need to look through multiple log files, attempting to correlate to specific set of events.